# coding: utf-8

class Parent
	def hi()
		puts "hi"
	end
end

module Mixinable
	def hey()
		puts "hey"
	end
end

class Child < Parent
	include Mixinable

	def hello()
		puts "hello"
	end
end

instance = Child.new
instance.hello
instance.hey
instance.hi


class << instance
	def instance_singleton_method_one
		puts "instance_singleton_method_one"
	end
end

instance.instance_singleton_method_one

def instance.instance_singleton_method_two
	puts "instance_singleton_method_two"
end

instance.instance_singleton_method_two


class Child
	def child_method_one()
		puts "child_method_one"
	end
end

instance.child_method_one


class Child
	def Child.child_class_method_one()
		puts "child_class_method_one"
	end
end

Child.child_class_method_one

class Child
	def self.child_class_method_two()
		puts "child_class_method_two"
	end
end

Child.child_class_method_two

def Child.child_class_method_three
	puts "child_class_method_three"
end

Child.child_class_method_three

class << Child
	def child_class_method_four()
		puts "child_class_method_four"
	end
end

Child.child_class_method_four